]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
gdm/util: Restart auth if default service changed
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Fri, 21 Oct 2022 17:05:04 +0000 (19:05 +0200)
committerMarco Trevisan (Treviño) <mail@3v1n0.net>
Wed, 28 Feb 2024 21:10:23 +0000 (22:10 +0100)
If a default service changed while the previous one was active we need to
reset the authentication so that we set back to the expected one.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2267>

js/gdm/util.js

index 9946b2c610020d06a699f11082901558546a218f..3ea91d2bb8c994c8cec010d6966afd3d173fba8d 100644 (file)
@@ -519,6 +519,8 @@ export class ShellUserVerifier extends Signals.EventEmitter {
     }
 
     _updateDefaultService() {
+        const oldDefaultService = this._defaultService;
+
         if (this._settings.get_boolean(PASSWORD_AUTHENTICATION_KEY))
             this._defaultService = PASSWORD_SERVICE_NAME;
         else if (this._settings.get_boolean(SMARTCARD_AUTHENTICATION_KEY))
@@ -530,6 +532,11 @@ export class ShellUserVerifier extends Signals.EventEmitter {
             log('no authentication service is enabled, using password authentication');
             this._defaultService = PASSWORD_SERVICE_NAME;
         }
+
+        if (oldDefaultService &&
+            oldDefaultService !== this._defaultService &&
+            this._activeServices.has(oldDefaultService))
+            this._cancelAndReset();
     }
 
     async _startService(serviceName) {